﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cesave.Domain.PermisosModule.Entities;
using Cesave.Infrastructure.Data.Core;
using Cesave.Domain.PermisosModule.Contracts.Comercializadoras;
using Cesave.Infrastructure.Data.PermisosModule.Context;
using Cesave.Infrastructure.CrossCutting.Logging;
using System.Collections;

namespace Cesave.Infrastructure.Data.PermisosModule.Repositories
{
    public class ComercializadoraRepository
        : GenericRepositoryEx<Comercializadora>, IComercializadoraRepository
    {
        public ComercializadoraRepository(IPermisosModuleContext context, ITraceManager tracemanager)
            : base(context, tracemanager)
        {

        }

		/// <summary>
		/// 
		/// </summary>
		/// <param name="specification"></param>
		/// <returns></returns>
		public Comercializadora FindComercializadoraByGuid(ComercializadoraByGuidSpecification specification)
        {
            return GetBySpec(specification).FirstOrDefault();
        }

		/// <summary>
		/// 
		/// </summary>
		/// <param name="specification"></param>
		/// <returns></returns>
		public IEnumerable<Comercializadora> FindComercializadorasByJunta(ComercializadorasByJuntaSpecification specification)
		{
			if (specification == null)
				throw new ArgumentNullException("specification");
			return GetBySpec(specification).OrderBy(c => c.Nombre);
		}

    }
}
